package com.hsd.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;

@Controller
@RequestMapping("/file")
public class FileUploadController {
    @RequestMapping("/upload")
    public void upload(@RequestParam MultipartFile file, String descr,HttpSession session) {
        System.out.println("上传的文件的文件名称：" + file.getOriginalFilename());
        System.out.println("上传的文件大小：" + file.getSize());
        System.out.println("描述：" + descr);
        //保存文件：保存路径/文件
        //(1)定义保存路径：路径跟随应用部署的服务器路径而变
        String imagesPath = session.getServletContext().getRealPath("images");
        System.out.println("文件在服务端保存的路径："+imagesPath);
        //(2)为了避免文件重名，文件名我们采用时间戳命名：
        String imgName = System.currentTimeMillis()+".jpg";
        try {
            //保存到目标位置
            File file1 = new File(imagesPath, imgName);
            //如果文件父路径不存在
            if(!file1.getParentFile().exists()){
                //就创建父路径
                file1.mkdirs();
            }
            //将file转移到指定位置file1（保存）
            file.transferTo(file1);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
